package pe.com.bbva.pct.domain;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import pe.com.bbva.pct.util.ConstantesGenerales;

@Entity
@Table(name="TMR004_REGLA", schema = ConstantesGenerales.DATABASE)
public class Regla implements Serializable{

	private static final long serialVersionUID = 1004251153311452517L;
	private Long idRegla;
	private Valor idTipoEjecucion;
	private Aplicacion idAplicacion;
	private String nombre;
	private String descripcion;
	private Valor idEstado;
	private String nombreGuvnor;
	
	@Id
	@SequenceGenerator(name="SQ_ID_REGLA", sequenceName=ConstantesGenerales.DATABASE+".SQ_ID_REGLA", allocationSize = 1)
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SQ_ID_REGLA")
	@Column(name="CD_ID_REGLA", unique=true, nullable=false, precision=36)
	public Long getIdRegla() {
		return idRegla;
	}
	public void setIdRegla(Long idRegla) {
		this.idRegla = idRegla;
	}
	
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "CD_ID_TIPO_EJEC",  nullable=true)
	public Valor getIdTipoEjecucion() {
		return idTipoEjecucion;
	}
	public void setIdTipoEjecucion(Valor idTipoEjecucion) {
		this.idTipoEjecucion = idTipoEjecucion;
	}
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "CD_ID_APLICACION",  nullable=true)
	public Aplicacion getIdAplicacion() {
		return idAplicacion;
	}
	public void setIdAplicacion(Aplicacion idAplicacion) {
		this.idAplicacion = idAplicacion;
	}
	
	@Column(name="NB_NOMBRE_REGLA", length=100,  nullable=true)
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	@Column(name="NB_DESCRIPCION", length=225,  nullable=true)
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	
	@Column(name="NB_NOM_REG_GUVNOR", length=100,  nullable=true)
	public String getNombreGuvnor() {
		return nombreGuvnor;
	}
	public void setNombreGuvnor(String nombreGuvnor) {
		this.nombreGuvnor = nombreGuvnor;
	}
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "CD_ID_ESTADO",  nullable=true)
	public Valor getIdEstado() {
		return idEstado;
	}
	public void setIdEstado(Valor idEstado) {
		this.idEstado = idEstado;
	}
	
	
	
}
